package samsung.sds.survey.surveyStatistics.dao;

import java.util.List;
import java.util.Map;

import samsung.sds.survey.surveyStatistics.model.QuestionEntity;
import samsung.sds.survey.surveyStatistics.model.QuestionOptionEntity;
import samsung.sds.survey.surveyStatistics.model.SurveyEntity;
import samsung.sds.system.common.baseQuery.BaseMapper;

/**
 * @author long1.huang
 * @createDate 2016-01-18 
 * 
 * 统计结束问卷结果dao层
 */
public interface SurveyResultStatisticsMapper extends BaseMapper<SurveyEntity> {

    /**
     * 根据surveyId查询其所有question
     *
     * @param surveyId 问卷surveyId
     * @return question集合
     */
    List<QuestionEntity> selectTF_F_QUESTION01(String surveyId);

    /**
     * 根据surveyId查询问卷类型为数字的问题集合
     *
     * @param surveyId 问卷surveyId
     * @return question集合
     */
    List<QuestionEntity> selectTF_F_QUESTION02(String surveyId); 

    /**
     * 根据surveyId查询问卷类型为数字的问题数量
     *
     * @param surveyId 问卷surveyId
     * @return question集合
     */
    List<QuestionEntity> selectTF_F_SURVEY_RESULT01(String surveyId); 

    /**
     * 根据surveyId及数字问卷区域范围，查询该区间范围answer的投票数量
     *
     * @param surveyId   问卷surveyId
     * @param questionId 问题questionId
     * @param min        最小值
     * @param max        最大值
     * @return 在min与max之间的投票数量
     */
    int selectTF_F_SURVEY_RESULT02(String surveyId, String questionId, int min, int max); 

    /**
     * 根据surveyId、questionId、选项，查询该选项投票数量
     *
     * @param surveyId   问卷surveyId
     * @param questionId 问题questionId
     * @param option     选项
     * @return 选项的投票数量
     */
    int selectTF_F_SURVEY_RESULT03(String surveyId, String questionId, String option); 

    /**
     * 根据surveyId查询所有question问题集合
     *
     * @param surveyId 问卷surveyId
     * @return 问题question集合
     */
    List<QuestionEntity> selectTF_F_QUESTION03(String surveyId); 

    /**
     * 根据questionId号查询所有options
     *
     * @param id 问题questionId
     * @return 问题question集合
     */
    List<QuestionOptionEntity> selectTF_F_QUESTION_OPTIONITEMT(String id); 

    /**
     * 查询组合统计所问卷投票所对应的用户
     *
     * @param map
     * @return
     */
    List<String> selectTF_F_SURVEY_RESULT04(Map<String, String> map);

    /**
     * 查询每一个组合所对应的票数
     *
     * @param map
     * @return
     */
    int selectTF_F_SURVEY_RESULT05(Map<String, String> map);

    /**
     * 查询数字类型问卷用户的答案集合
     * 
     * @param surveyId   问卷surveyId
     * @param questionId 问题questionId
     * @return
     */
    List<QuestionOptionEntity> selectTF_F_SURVEY_RESULT06(String surveyId,String questionId);
}
